package com.galaxy.payment.service;

import com.galaxy.payment.domain.vo.PaymentRecordVo;
import org.springframework.transaction.annotation.Transactional;

import java.util.Map;

/**
 * 支付宝支付Service接口
 */
public interface IAliPayService {

    /**
     * 创建支付
     *
     * @param orderNo 订单号
     * @param amount  金额
     * @param subject 商品名称
     * @return 支付表单
     */
    String createPay(String orderNo, String amount, String subject,Long userId,Long orderId);

    /**
     * 查询支付状态
     *
     * @param orderNo 订单号
     * @return 支付状态
     */
    String queryPayStatus(String orderNo, String type);


    /**
     * 生成支付二维码
     *
     * @param orderNo 订单号
     * @param amount  金额
     * @param subject 商品名称
     * @return 支付二维码URL
     */
    String generatePayQrCode(String orderNo, String amount, String subject,Long userId,Long orderId,String type);


    @Transactional(rollbackFor = Exception.class)
    Boolean closePay(String payNo);

    @Transactional(rollbackFor = Exception.class)
    Boolean refund(String payNo, String reason);
}
